srvMap.add('queryCityRegionAll', '','front/sh/common!execute?uid=queryCityRegionAll');//查询所有地市区域
srvMap.add('queryHotMapNow', '','front/sh/hotMap!execute?uid=queryHotMapNow');//实时热力图
srvMap.add('queryHotMapHistory', '','front/sh/hotMap!execute?uid=queryHotMapHistory');//回放热力图
srvMap.add('queryHotMapCheck', '','front/sh/hotMap!execute?uid=queryHotMapCheck');//对比热力图

var map; // 百度地图实例
var mapLeft; // 对比模式下左侧地图
var mapRight; // 对比模式下右侧地图
var centerLng = ""; // 地图中心点经度
var centerLat = ""; // 地图中心点维度
var zoomLevel = ""; // 地图级别
var cityRegionArr; // 地市区域信息，做数据缓存
var historyData = {}; // 回放模式数据做缓存
var checkData = {}; // 对比模式数据做缓存
var heatmap; // 热力图
var heatmapLeft; // 热力图
var heatmapRight; // 热力图

var _intvl_hot = null; // 实时刷新定时器
var mapLoadDone = false;	//设置地图加载完成标志位

$(function() {
	// 初始化页面
	initPage();

	$(window).resize(function() {
		// 初始化页面
		initPage();
	});

	// 面包屑隐藏显示
	$(".crumbs_link").mouseenter(function() {
		$(this).addClass("crumbs_link_show");
	}).mouseleave(function() {
		$(this).removeClass("crumbs_link_show");
	});

	// 取消对比模式
	$("#hot_check_input").removeAttr("checked");
	// 取消回放模式
	$("#hot_history_input").removeAttr("checked");

	// 回放模式
	$("#hot_history_input").click(function() {
		// 取消对比模式
		if ($("#hot_check_input").is(":checked")) {
			$("#hot_check_input").removeAttr("checked");
		}

		if ($("#hot_history_input").is(":checked")) {
			// 显示回放模式
			showHistory();
		} else {
			// 隐藏回放模式
			hideHistory();
			startRealTimeFrash();
		}
	});

	// 对比模式模式
	$("#hot_check_input").click(function() {
		// 取消回放模式
		if ($("#hot_history_input").is(":checked")) {
			$("#hot_history_input").removeAttr("checked");
		}

		if ($("#hot_check_input").is(":checked")) {
			// 显示对比模式
			/*if(checkData[curAreaId]){
				today = checkData[curAreaId].today;
				yesterday = checkData[curAreaId].yesterday;
				lastday = checkData[curAreaId].lastday;
				$("#yesterdayId").html(lastday);
				$("#todayId").html(yesterday);
			}*/	
			showCheck();
		} else {
			// 隐藏对比模式
			hideCheck();
			startRealTimeFrash();
		}
	});

	heatmap = new BMapLib.HeatmapOverlay({
		"radius": 40/*,
		"opacity": [0, 0.1],
		"gradient": {
			".1": 'blue',
			".35": 'rgb(117,211,248)',
			'.7': 'rgb(0, 255, 0)',
			'.88': '#ffea00',
			'1': 'red'
		}*/
	});

	heatmapLeft = new BMapLib.HeatmapOverlay({
		"radius": 40/*,
		"opacity": [0, 0.1],
		"gradient": {
			".1": 'blue',
			".35": 'rgb(117,211,248)',
			'.7': 'rgb(0, 255, 0)',
			'.88': '#ffea00',
			'1': 'red'
		}*/
	});

	heatmapRight = new BMapLib.HeatmapOverlay({
		"radius": 40/*,
		"opacity": [0, 0.1],
		"gradient": {
			".1": 'blue',
			".35": 'rgb(117,211,248)',
			'.7': 'rgb(0, 255, 0)',
			'.88': '#ffea00',
			'1': 'red'
		}*/
	});
	
	
	// 初始化地市区域
	$(document).ready(function(){
		initCityRegion();
	});
});

/**
 * 
 * @Description : 初始化页面
 * @return void
 * 
 * @author : wucm
 * @date : 2015年7月6日 下午4:27:25
 * 
 */
function initPage() {
	var b = $("body").height();
	// 高度设置
	$(".box,.leftBox,.right_box").height(b);
	$(".left_list,.map,#allmap,#leftmap,#rightmap,.left_list ul,.compare .lFloat").height(b - 42);
	$(".timeline-box").width($(".map").width() - 18);
}

/**
 * 
 * @Description : 初始化地市区域
 * @return void
 * 
 * @author : wucm
 * @date : 2015年7月1日 下午2:08:11
 * 
 */
function initCityRegion() {
	
	Util.ajax.postJsonSync(srvMap.get('queryCityRegionAll'),null,function(json,status){
		if(status){
			
			cityRegionArr = json.object.result;

			// 加载地市区域数据
			loadCityRegion();

			// 初始化当前地市区域
			initCurCityRegion();

			// 初始地图
			initMap();
		}else{
			 alert('错误','数据异常！');   
		}
	});
	
}

/**
 * 
 * @Description :非对比、回放时候 每分钟实时刷新
 * @author xueyf3
 * @date 创建时间：2015年7月20日 上午11:12:05
 * @version 1.0
 */
function startRealTimeFrash() {
	if (_intvl_hot != null) {
		clearInterval(_intvl_hot);
		_intvl_hot = null;
	}
	initHotMapNow();
	
	_intvl_hot = setInterval(function() {
		initHotMapNow();
	}, 1000 * 60 * 5 );	//数据15分钟入库一次
	
}

/**
 * 
 * @Description : 加载地市区域数据
 * @return void
 * 
 * @author : wucm
 * @date : 2015年7月1日 下午2:08:52
 * 
 */
function loadCityRegion() {
	// 加载地市
	var citys = cityRegionArr.city;
	var sarr = [];
	for (var i = 0; i < citys.length; i++) {
		var title = "点击进入监控图";
		var str = '<p class="$3" id="$1" areaId="$1" areaName="$2" coreLongitude="$4" coreLatitude="$5" warnZoomLevel="$6">$2</p>';
		var d = citys[i];
		var areaId = d.areaId;
		var areaName = d.areaName;
		var enableFlag = d.enableFlag;
		var coreLongitude = d.coreLongitude;
		var coreLatitude = d.coreLatitude;
		var warnZoomLevel = d.warnZoomLevel;
		var hasRight = d.hasRight;
		var cls = "";
		if ("0" == enableFlag || !hasRight) {
			cls = "dis";
		}
		str = str.replace(/\$1/g, areaId);
		str = str.replace(/\$2/g, areaName);
		str = str.replace(/\$3/g, cls);
		str = str.replace(/\$4/g, coreLongitude);
		str = str.replace(/\$5/g, coreLatitude);
		str = str.replace(/\$6/g, warnZoomLevel);
		sarr.push(str);
	}
	sarr.push("<div class='clear'></div>");
	sarr = sarr.join("");
	$("#citySelect").html(sarr);

	// 加载区县
	var countys = cityRegionArr.county;
	var sarr = [];
	for (var i = 0; i < countys.length; i++) {
		var title = "点击进入监控图";
		var str = '<p class="$3" id="$1" areaId="$1" areaName="$2" coreLongitude="$4" coreLatitude="$5" warnZoomLevel="$6">$2</p>';
		var d = countys[i];
		var upperId = d.upperId;
		var areaId = d.areaId;
		var areaName = d.areaName;
		var enableFlag = d.enableFlag;
		var coreLongitude = d.coreLongitude;
		var coreLatitude = d.coreLatitude;
		var warnZoomLevel = d.warnZoomLevel;
		var chartFlag = d.chartFlag;
		var hasRight = d.hasRight;
		// 排除非当前地市
		if (curAreaId.substr(0, 3) != upperId.substr(0, 3) || chartFlag != "1") {
			continue;
		}
		var cls = "";
		if ("0" == enableFlag || !hasRight) {
			cls = "dis";
		}
		str = str.replace(/\$1/g, areaId);
		str = str.replace(/\$2/g, areaName);
		str = str.replace(/\$3/g, cls);
		str = str.replace(/\$4/g, coreLongitude);
		str = str.replace(/\$5/g, coreLatitude);
		str = str.replace(/\$6/g, warnZoomLevel);
		sarr.push(str);
	}
	sarr.push("<div class='clear'></div>");
	sarr = sarr.join("");
	$("#countySelect").html(sarr);

	// 加载区域
	var regions = cityRegionArr.region;

	//判空处理
	regions = regions != null ? regions : [];

	var sarr = [];
	for (var i = 0; i < regions.length; i++) {
		var d = regions[i];
		var upperId = d.upperId;
		
		// 排除非当前地市
		if (curAreaId.substr(0, 3) != upperId.substr(0, 3)) {
			continue;
		}
		
		var str = '<li id="$1" areaId="$1" areaName="$2" coreLongitude="$4" coreLatitude="$5" warnZoomLevel="$6"><a href="javascript:void(0)">$2</a></li>';
		var areaId = d.areaId;
		var areaName = d.areaName;
		var coreLongitude = d.coreLongitude;
		var coreLatitude = d.coreLatitude;
		var warnZoomLevel = d.warnZoomLevel;
		str = str.replace(/\$1/g, areaId);
		str = str.replace(/\$2/g, areaName);
		str = str.replace(/\$4/g, coreLongitude);
		str = str.replace(/\$5/g, coreLatitude);
		str = str.replace(/\$6/g, warnZoomLevel);

		sarr.push(str);
	}
	sarr = sarr.join("");
	$("#regionSelect").html(sarr);

	//设置展示样式---空白时不展示下拉白窗口
	if( sarr.length != 0 ){
		$("#regionWrapDiv").removeClass("cityTabs1").addClass("cityTabs");
	}else{
		$("#regionWrapDiv").removeClass("cityTabs").addClass("cityTabs1");
	}
	
	
	
	// 添加选中样式
	$("#" + curAreaId).attr("class", "on");

	// 绑定点击事件
	$("#citySelect p:not(.dis),#countySelect p:not(.dis),#regionSelect li:not(.dis)").click(function() {
		var _o = $(this);
		var areaId = _o.attr("areaId");
		if (_o.hasClass('dis')) {
			return;
		}

		// 进入热力图页面
		gotoSelf(areaId);
	});
}

/**
 * 
 * @Description : 初始化当前地市区域
 * @return void
 * 
 * @author : wucm
 * @date : 2015年7月1日 下午2:45:16
 * 
 */
function initCurCityRegion() {
	if (curAreaId == DEPLOY_PROVINCE_ID) {
		$("#cityLevel").html("全部");
		$("#regionLevel").html("全部");
		return;
	}

	var _o = $("#" + curAreaId);
	if (_o.length > 0) {
		var id = _o.attr("areaId");
		var name = _o.attr("areaName");
		var coreLongitude = _o.attr("coreLongitude");
		var coreLatitude = _o.attr("coreLatitude");
		var warnZoomLevel = _o.attr("warnZoomLevel");

		centerLng = coreLongitude;
		centerLat = coreLatitude;
		zoomLevel = warnZoomLevel;

		if (curAreaId.length == 3) {
			// 设置地市
			$(".left_title_new .tit").html(name);
			$("#cityLevel").html(name).attr({
				"areaId": id,
				"areaName": name
			});
			$("#regionLevel").html("全部");
		} else if (curAreaId.length == 4) {
			// 设置地市
			var upperId = curAreaId.substr(0, 3); // 地市编码
			var upperObj = $("#" + upperId);
			var upperName = upperObj.attr("areaName"); // 地市名称
			$(".left_title_new .tit").html(name);
			$("#cityLevel").html(upperName).attr({
				"areaId": upperId,
				"areaName": upperName
			});

			// 设置区域
			$("#regionLevel").html(name).attr({
				"areaId": id,
				"region_name": name
			});
		} else if (curAreaId.length == 11) {
			// 设置地市
			var upperId = curAreaId.substr(0, 3); // 地市编码
			var upperObj = $("#" + upperId);
			var upperName = upperObj.attr("areaName"); // 地市名称
			$(".left_title_new .tit").html(name);
			$("#cityLevel").html(upperName).attr({
				"areaId": upperId,
				"areaName": upperName
			});

			// 设置区域
			$("#regionLevel").html(name).attr({
				"areaId": id,
				"region_name": name
			});
		} else if (curAreaId.length == 13) {
			// 地市
			var uupperId = curAreaId.substr(0, 3); // 地市编码
			var uupperObj = $("#" + upperId);
			var uupperName = upperObj.attr("areaName"); // 地市名称
			$(".left_title_new .tit").html(name);
			$("#cityLevel").html(uupperName).attr({
				"areaId": uupperId,
				"areaName": uupperName
			});
			// 区域
			var upperId = curAreaId.substr(0, 6); // 地市编码
			var upperObj = $("#" + upperId);
			var upperName = upperObj.attr("areaName"); // 地市名称
			$(".left_title_new .tit").html(name);
			$("#cityLevel").html(upperName).attr({
				"areaId": upperId,
				"areaName": upperName
			});
			$("#regionLevel").html(name).attr({
				"areaId": id,
				"region_name": name
			});

			// 显示子区域
			$("#gt_label").show();
			$("#subRegionName").html(name).attr({
				"areaId": id,
				"areaName": name
			});
		}
	}
}

/**
 * 
 * @Description : 进入热力图页面
 * @param areaId
 * @return void
 * 
 * @author : wucm
 * @date : 2015年6月30日 下午1:35:40
 * 
 */
function gotoSelf(areaId) {
	var str = '?areaId=' + areaId.EncodeBase64();
	window.open(CONTENT_PATH + '/zhly/hot_map.jsp' + str, '_self');
}

/**
 * 
 * @Description : 进入子区域预警页面
 * @return void
 * 
 * @author : wucm
 * @date : 2015年5月28日 下午10:53:08
 * 
 */
function gotoMoniView() {
	var areaId = curAreaId.EncodeBase64();
	var url = CONTENT_PATH + '/zhly/sub_region_warn.jsp?areaId=' + areaId;
	window.open(url, '_self');
}

/**
 * 
 * @Description : 初始地图，不包含数据
 * @return void
 * 
 * @author : wucm
 * @date : 2015年6月30日 上午10:51:48
 * 
 */
function initMap() {
	if (typeof(BMap) == "undefined") {
		alert("网络延迟导致地图未正确加载，请手动刷新刷新页面重新加载");
		return;
	}
	if (!map) {
		var _mapLevel = parseInt(zoomLevel||9);
		map = new BMap.Map("allmap", {
			enableMapClick: false,
			mapType: BMAP_NORMAL_MAP,//地图(BMAP_NORMAL_MAP)、三维(BMAP_PERSPECTIVE_MAP)、卫星(BMAP_SATELLITE_MAP)、混合(BMAP_HYBRID_MAP)
			minZoom: _mapLevel-1,
			maxZoom: _mapLevel+4
		});

		map.addControl(new BMap.MapTypeControl({
			type: BMAP_MAPTYPE_CONTROL_MAP,
			anchor: BMAP_ANCHOR_TOP_RIGHT,
			mapTypes: [BMAP_HYBRID_MAP]
		}));

		var point = new BMap.Point(centerLng, centerLat);
		if(curAreaId == DEPLOY_PROVINCE_ID){
			map.centerAndZoom(DEPLOY_PROVINCE_NAME_SHORT, 8);
		} else {
			map.centerAndZoom(point, _mapLevel);
		}
		map.disableDoubleClickZoom();
		map.enableScrollWheelZoom();
		
		//地图加载完后触发
		map.addEventListener("tilesloaded", function(e) {
			//三位信息等杂项删除
			if ($("span[title='显示三维地图']").html()) {
				$("span[title='显示三维地图']").prev("div").remove();
				$("span[title='显示三维地图']").remove();
			}

			if( !mapLoadDone ){
				// 初始化实时热力图
				startRealTimeFrash();
				mapLoadDone = true;
			}
		});
	}
}

/**
 * 
 * @Description : 初始地图，不包含数据
 * @return void
 * 
 * @author : wucm
 * @date : 2015年6月30日 上午10:51:48
 * 
 */
function initMapLeft() {
	if (typeof(BMap) == "undefined") {
		alert("网络延迟导致地图未正确加载，请手动刷新刷新页面重新加载");
		return;
	}
	if (!mapLeft) {
		var _mapLevel = parseInt(zoomLevel||9);
		mapLeft = new BMap.Map("leftmap", {
			enableMapClick: false,
			mapType: BMAP_NORMAL_MAP,//地图(BMAP_NORMAL_MAP)、三维(BMAP_PERSPECTIVE_MAP)、卫星(BMAP_SATELLITE_MAP)、混合(BMAP_HYBRID_MAP)
			minZoom: _mapLevel-1,
			maxZoom: _mapLevel+3
		});

		mapLeft.addControl(new BMap.MapTypeControl({
			anchor: BMAP_ANCHOR_TOP_RIGHT,
			mapTypes: [BMAP_NORMAL_MAP, BMAP_HYBRID_MAP, BMAP_SATELLITE_MAP]
		}));

		var point = new BMap.Point(centerLng, centerLat);
		if(curAreaId == DEPLOY_PROVINCE_ID){
			mapLeft.centerAndZoom(DEPLOY_PROVINCE_NAME_SHORT, 8);
		} else {
			mapLeft.centerAndZoom(point, _mapLevel);
		}
		mapLeft.disableDoubleClickZoom();
	}
}

/**
 * 
 * @Description : 初始地图，不包含数据
 * @return void
 * 
 * @author : wucm
 * @date : 2015年6月30日 上午10:51:48
 * 
 */
function initMapRight() {
	if (typeof(BMap) == "undefined") {
		alert("网络延迟导致地图未正确加载，请手动刷新刷新页面重新加载");
		return;
	}
	if (!mapRight) {
		var _mapLevel = parseInt(zoomLevel||9);
		mapRight = new BMap.Map("rightmap", {
			enableMapClick: false,
			mapType: BMAP_NORMAL_MAP,//地图(BMAP_NORMAL_MAP)、三维(BMAP_PERSPECTIVE_MAP)、卫星(BMAP_SATELLITE_MAP)、混合(BMAP_HYBRID_MAP)
			minZoom: _mapLevel-1,
			maxZoom: _mapLevel+3
		});

		mapRight.addControl(new BMap.MapTypeControl({
			anchor: BMAP_ANCHOR_TOP_RIGHT,
			mapTypes: [BMAP_NORMAL_MAP, BMAP_HYBRID_MAP, BMAP_SATELLITE_MAP]
		}));

		var point = new BMap.Point(centerLng, centerLat);
		if(curAreaId == DEPLOY_PROVINCE_ID){
			mapRight.centerAndZoom(DEPLOY_PROVINCE_NAME_SHORT, 8);
		} else {
			mapRight.centerAndZoom(point, _mapLevel);
		}
		mapRight.disableDoubleClickZoom();
	}
}

/**
 * 
 * @Description : 显示回放模式
 * @return void
 * 
 * @author : wucm
 * @date : 2015年7月6日 下午4:32:14
 * 
 */
function showHistory() {
	// 清除实时刷新定时器
	if (_intvl_hot != null) {
		clearInterval(_intvl_hot);
		_intvl_hot = null;
	}

	timelineFunc.init();
	$("#checkPanel").hide();
	$("#allmap").show();

	if (null == historyData[curAreaId]) {
		var par = "&regionId="+curAreaId;
		Util.ajax.postJsonSync(srvMap.get('queryHotMapHistory'),par,function(json,status){
			if(status){
				$("#disablePlay").hide();
				$("#ablePlay").show();
				historyData[curAreaId] = json.object.result;
			}else{
				 alert('错误','数据异常！');   
				 return;
			}
		});
	} else {
		//无数据，则设置不可播放
		$("#disablePlay").hide();
		$("#ablePlay").show();
	}

}

/**
 * 
 * @Description : 隐藏回放模式
 * @return void
 * 
 * @author : wucm
 * @date : 2015年7月6日 下午4:32:14
 * 
 */
function hideHistory() {
	timelineFunc.hide();

	$("#checkPanel").hide();
	$("#allmap").show();
}

/**
 * 
 * @Description : 回放模式，自动播放
 * @param time
 * @return void
 * 
 * @author : wucm
 * @date : 2015年7月8日 上午9:10:27
 * 
 */
function playHistory(time) {
	time = time.format("yyyy-MM-dd hh:mm");
	var points = historyData[curAreaId][time];
	var max = historyData[curAreaId].max;

	map.clearOverlays();

	if(null != points){
		map.addOverlay(heatmap);
		heatmap.setDataSet({
			data: points,
			max: max
		});
		heatmap.show();
	}
}

/**
 * 
 * @Description : 显示对比模式
 * @return void
 * 
 * @author : wucm
 * @date : 2015年7月6日 下午4:32:34
 * 
 */
function showCheck() {
	// 清除实时刷新定时器
	if (_intvl_hot != null) {
		clearInterval(_intvl_hot);
		_intvl_hot = null;
	}

	timelineFunc.init();

	$("#checkPanel").show();
	$("#allmap").hide();

	// 初始化地图
	initMapLeft();
	initMapRight();

	if (null == checkData[curAreaId]) {
		
		var par = "&regionId="+curAreaId;
		Util.ajax.postJsonSync(srvMap.get('queryHotMapCheck'),par,function(json,status){
			if(status){
				$("#disablePlay").hide();
				$("#ablePlay").show();
				checkData[curAreaId] = json.object.result;
				today = checkData[curAreaId].today;
				yesterday = checkData[curAreaId].yesterday;
				lastday = checkData[curAreaId].lastday;
				$("#yesterdayId").html(lastday);
				$("#todayId").html(yesterday);
			}else{
				 alert('错误','数据异常！');   
				 return;
			}
		});
	} else {
		$("#disablePlay").hide();
		$("#ablePlay").show();
	}
}

/**
 * 
 * @Description : 隐藏对比模式
 * @return void
 * 
 * @author : wucm
 * @date : 2015年7月6日 下午4:32:34
 * 
 */
function hideCheck() {
	timelineFunc.hide();
	$("#checkPanel").hide();
	$("#allmap").show();
}

/**
 * 
 * @Description : 对比模式，自动播放
 * @param time
 * @return void
 * 
 * @author : wucm
 * @date : 2015年7月8日 上午9:10:27
 * 
 */
function playCheck(time) {
	var t = time;
	var y = t.getFullYear();
	var m = t.getMonth() + 1;
	var d = t.getDate() - 1;
	var h = t.getHours();
	var mm = t.getMinutes();
	t = new Date(y + "/" + m + "/" + d + " " + h + ":" + mm + ":00");
	t = t.format("yyyy-MM-dd hh:mm");

	// 左侧地图
	var points = checkData[curAreaId]["map48"][t];
	var max = checkData[curAreaId]["map24"].max;	//为了与回放模式统一

	mapLeft.clearOverlays();

	if(null != points){
		mapLeft.addOverlay(heatmapLeft);
		heatmapLeft.setDataSet({
			data: points,
			max: max
		});
		heatmapLeft.show();
	}

	// 右侧地图
	time = time.format("yyyy-MM-dd hh:mm");
	var points = checkData[curAreaId]["map24"][time];

	mapRight.clearOverlays();

	if(null != points){
		mapRight.addOverlay(heatmapRight);
		heatmapRight.setDataSet({
			data: points,
			max: max
		});
		heatmapRight.show();
	}
}

/**
 * 
 * @Description : 开始播放热力图
 * @param time
 * @return void
 * 
 * @author : wucm
 * @date : 2015年7月8日 上午9:15:01
 * 
 */
function startPlay(time) {
	if ($("#hot_history_input").is(":checked")) {
		// 回放模式
		playHistory(time);
	} else if ($("#hot_check_input").is(":checked")) {
		// 对比模式
		playCheck(time);
	}
}

/**
 * 
 * @Description : 初始化实时热力图
 * @return void
 * 
 * @author : wucm
 * @date : 2015年7月1日 下午2:08:11
 * 
 */
function initHotMapNow() {
	
	var par = "&regionId="+curAreaId;
	Util.ajax.postJsonSync(srvMap.get('queryHotMapNow'),par,function(json,status){
		if(status){
			var time = json.object.result.time;
			var points = json.object.result[time];
			var max = json.object.result.max;

			map.clearOverlays();

			if(null != points){
				map.addOverlay(heatmap);
				heatmap.setDataSet({
					data: points,
					max: max
				});
				heatmap.show();
			}
		}else{
			 alert('错误','数据异常！');   
		}
	});
}